package com.dc.bobaoge.project.base.core.constant;

import java.util.ArrayList;
import java.util.List;

/**
 * AuthInfoConstant
 *
 * @author chenxueli
 * @date 2024-01-26 17:15:00
 */
public class AuthInfoConstant {

    private static final List<Integer> OLD_STATUS_AUDIT = new ArrayList<>() {{
        add(OldStatus.PASS);
        add(OldStatus.REJECT);
        add(OldStatus.PERFECT_INFO_REJECT);
        add(OldStatus.MODIFY_INFO_REJECT);
        add(OldStatus.RENEWED_REJECT);
        add(OldStatus.UPGRADE_REJECT);
    }};

    /**
     * 是否在旧版中已经存在审核
     *
     * @param status 状态
     * @return 是否存在
     */
    public static boolean containsOldStatusAudit(Integer status) {
        return OLD_STATUS_AUDIT.contains(status);
    }

    /**
     * 新版状态
     */
    public interface NewStatus {
        /**
         * 审核中
         */
        int WAIT = 1;
        /**
         * 审核通过
         */
        int PASS = 2;
        /**
         * 审核不通过
         */
        int REJECT = 3;
    }

    /**
     * 新版状态
     */
    public interface NewUpdateStatus {
        /**
         * 审核中
         */
        int WAIT = 1;
        /**
         * 审核通过
         */
        int PASS = 2;
        /**
         * 审核不通过
         */
        int REJECT = 3;
    }

    /**
     * 状态
     * <p>
     * 第一次提交信息为审核中，后期所有的提交都是其余状态
     * 所以只有审核通过的状态是可用的实名认证信息
     */
    public interface OldStatus {

        /**
         * 审核中（首次）
         */
        int AUDITING = 0;

        /**
         * 审核通过
         */
        int PASS = 1;

        /**
         * 审核不通过
         */
        int REJECT = 2;

        /**
         * 完善信息
         */
        int PERFECT_INFO = 3;

        /**
         * 未续费
         */
        int UN_RENEWED = 4;

        /**
         * 拒绝再次提交
         */
        int REJECT_SUBMIT_AGAIN = 5;

        /**
         * 成功之后修改资料
         */
        int MODIFY_INFO = 6;

        /**
         * 续费付钱之后的状态
         */
        int RENEWED = 7;

        /**
         * 续费升级之后的状态
         */
        int UPGRADE = 8;

        /**
         * 未支付
         */
        int UNPAID = 9;

        /**
         * 完善信息被拒绝
         */
        int PERFECT_INFO_REJECT = 10;

        /**
         * 完善信息未支付
         */
        int PERFECT_INFO_UNPAID = 11;

        /**
         * 修改信息被拒绝
         */
        int MODIFY_INFO_REJECT = 12;

        /**
         * 续费被拒绝
         */
        int RENEWED_REJECT = 13;

        /**
         * 升级被拒绝
         */
        int UPGRADE_REJECT = 14;

        /**
         * 退款状态
         */
        int REFUND = 15;

    }

}
